1. Field of the Invention
The present invention relates generally to video data processing, and more particularly to efficiently transmitting and storing video data.
2. Description of the Related Art
The area of multimedia is a large and still-growing industry which stores, processes, and transmits data and programs in multimedia formats. Multimedia programming includes, among other things, educational and entertainment audio-visual programs. Because of the world-wide acceptance of multimedia programming, and the demand for ever more such programming, the multimedia industry has launched several large-scale efforts geared toward providing multimedia programming on demand.
Most commonly, a multimedia program consists of both audio data and visual data. With current technology, video data is generated by filming an object and generating a series of raster-scanned video images of the object. Each image is established by a two-dimensional matrix of picture elements, referred to as xe2x80x9cpixelsxe2x80x9d, and the data record established by each matrix is relatively large, i.e., the data record established by each matrix contains a relatively large number of pixels.
In many approaches common in the art, each pixel defines a numerical value (currently an integer in the range 0-255) which represents a color or a color and an intensity. To transmit or store an image, a bit stream representing all of the pixels in the matrix and their associated values is generated and then stored or transmitted as appropriate.
Typically, when a multimedia program includes a video display, about thirty such images of an object must be generated and processed for each second of viewing time. It accordingly can be appreciated that a single video program requires the storage and/or transmission of a large number of relatively large data records, on the order of tens of megabits per second. Indeed, according to the May-June 1992 issue of the MIT Technology Review, xe2x80x9cvideo is a glutton for bandwidthxe2x80x9d which consequently can xe2x80x9csaturatexe2x80x9d many existing networks, particularly in the event that a single network must handle more than a few video transmissions. Such a consideration is of growing importance in light of the advent of video-on-demand discussed above.
Accordingly, to reduce the amount of a multimedia program""s video data which must be stored and/or transmitted, methods have been introduced for xe2x80x9ccompressingxe2x80x9d video data. Data compression essentially omits from the bit stream that is to be transmitted certain data in a particular data record. For example, in video image transmission, a simple compression technique may include, in the bit stream to be transmitted, only data which represents pixels that have changed relative to the immediately preceding image frame. Many other compression techniques exist which compress data to relatively lesser or greater degrees.
As the skilled artisan will appreciate, a trade-off exists in determining how much to compress video data. More particularly, it is the case that relatively great compression results in less data to transmit, but also tends to undesirably result in corruption of the image that is received for display.
Nonetheless, current compression techniques ordinarily are not tailored to a particular program or application. Likewise, current compression techniques do not permit a user to modify or otherwise tailor the compression processing to a particular program or application.
This is unfortunate, because a compression technique that may be suitable for one program may not be suitable for another. For example, a technique which compresses data to a relatively large degree may be suitable for a program in which relatively little on-screen activity occurs, but may be unsuitable for a program having a large amount of on-screen activity, because a large degree of data compression could corrupt the video image in such a program an unacceptable amount. Likewise, a technique that compresses data a relatively small degree may be suitable for a program in which much on-screen activity occurs, but would be an inefficient technique for a program having a small amount of on-screen activity, because much data would be unnecessarily included in the bit stream. Further, it is often the case in video programs that not all on-screen activity is equally important, yet the entire image typically is subjected to a single compression technique. As can be inferred from the above discussion, this can result in either unacceptable corruption of important portions of the image or inefficient transmission of bit streams which include more data than is necessary.
Accordingly, it is an object of the present invention to provide a system for interactively establishing one or more compression techniques for a pixel matrix. Another object of the present invention is to provide a system for dynamically establishing a compression technique for a pixel matrix. Still another object of the present invention is to provide a method and apparatus for establishing compression techniques which is easy to use and cost-effective.
A computer system for processing a video image includes a central processing unit (CPU) and at least one data record representative of a video image frame. The data record, which is accessible by the CPU, includes a plurality of elements that represent a plurality of pixels arranged in a matrix.
A boundary definer establishes first and second areas of the matrix, and a locator is operably engaged with the boundary definer for determining, for at least some of the pixels, which of the pixels are located in the first area and which of the pixels are located in the second area. A pixel processor is operably engaged with the locator for processing the elements representing the pixels in the first area in accordance with a first processing scheme and for processing the elements representing the pixels in the second area in accordance with a second processing scheme.
Preferably, the pixel processor generates a bit stream which is representative of the pixels and the area of each. Also, the system preferably includes an I/O device for selectively causing the bit stream to be stored in a storage device or transmitted across a communications network. If desired, the bit stream representing the pixels in the first area is compressed relative to the number of pixels in the first area.
In one embodiment of the present invention, the video program defines a sampling cycle, and the system further includes a timer for establishing a sampling interval threshold which is longer than the sampling cycle. As intended by the present invention, the pixel processor processes the elements representing the pixels in the second area each sampling cycle, and the pixel processor processes the elements representing the pixels in the first area each sampling interval threshold. Additionally, each pixel defines a corresponding variable value, and the boundary definer can establish the first and second areas in response to variations in the values of the pixels.
In another aspect of the present invention, an apparatus for processing data elements representing an image includes means for establishing first and second areas of the image, and means for determining, for at least some of the elements, which of the elements are located in the first area and which of the elements are located in the second area. Also, the apparatus includes means for processing the elements in the first area in accordance with a first processing scheme and for processing the elements in the second area in accordance with a second processing scheme.
In still another aspect of the present invention, a method is disclosed for processing data representing pixels arranged in a matrix. The method of the present invention includes defining at least first and second areas within the matrix and determining which pixels are within the first area and which pixels are within the second area. Then, the data representing pixels in the first area is processed in accordance with a first processing scheme, while the data representing pixels in the second area is processed in accordance with a second processing scheme.
In yet another aspect of the present invention, a system for processing pixels of a video image which defines a sampling cycle includes a data record. The data record in turn includes a matrix of pixels which represent an image, and the matrix is defined by at least first and second areas. Also, a timer is provided for establishing a sampling interval threshold which is longer than the sampling cycle. Furthermore, a pixel processor processes the pixels in the first area each sampling cycle and processes the pixels in the second area each sampling interval threshold.
In another aspect of the present invention, a method for processing pixels includes the steps of providing a data record that includes a matrix of pixels representing an image, wherein the matrix is defined by at least first and second areas. A sampling cycle and a sampling interval threshold are established such that the sampling interval threshold is longer than the sampling cycle, and the pixels in the first area are processed each sampling cycle. On the other hand, the pixels in the second area are processed each sampling interval threshold.
In yet another aspect of the present invention, a method for processing pixels which are arranged in a two-dimensional matrix includes the steps of establishing first and second areas of the matrix, and then determining, for at least some of the pixels, which of the pixels are located in the first area and which of the pixels are located in the second area. Next, the pixels in the first area are processed in accordance with a first processing scheme, while the pixels in the second area are processed in accordance with a second processing scheme.
The details of the present invention, both as to its structure and operation, can best be understood with reference to the accompanying drawings, in which like reference numerals refer to like parts, and in which: